package com.exam.service.interfaces;

import com.exam.domain.Grade;
import com.exam.domain.Question;
import com.exam.domain.Strategies;
import com.exam.service.Service;

import java.util.List;

/**
 * Created by jly on 2017/3/3.
 */
public interface StudentExamService extends Service {

    /**
     * @descrobe 查询每种类型题目的数量
     *
     * @param fieldid 试题科目  typeId 试题类型id
     * @since 2017-3-17
     * @author jly
     * */
    Integer queryQCount(Integer fieldid, int typeId,int level);

    /**
     * 随机试题组卷(选择题)
     *
     * @return: 试题列表
     * @since: 2017-3-6
     * @author: jly
     * */
    List<Question> studentExam(Integer fieldid,int count,String level);

    /**
     * 随机试题组卷(判断题)
     *
     * @return: 试题列表
     * @since: 2017-3-6
     * @author: jly
     * */
    List<Question> studentExam2(Integer fieldid,int count,String level);

    /**
     * 随机试题组卷(填空题)
     *
     * @return: 试题列表
     * @since: 2017-3-17
     * @author: jly
     * */
    List<Question> studentExam3(Integer fieldid,int count,String level);

    /**
     * 随机试题组卷(填空题)
     *
     * @return: 试题列表
     * @since: 2017-3-17
     * @author: jly
     * */
    List<Question> studentExam4(Integer fieldid,int typeId,int count,String level);

    /**
     * 根据试题id得到试题正确答案
     *
     * @return: 试题正确答案
     * @since: 2017-3-7
     * @author: jly
     * @param questionid*/
    String queryAnswer(Integer questionid);

    /**
     * 向成绩表插入学生成绩
     *
     * @return true-成功,false-失败
     * @since 2017-3-7
     * @author jly
     * @param userid 当前用户id, field 选择科目id, rank 等级判定, grade 分数
     * @param nowtime
     * @param strattime  */
    boolean addGrade(Long userid, Integer field, int rank, int grade, String nowtime, String strattime);

    /**
     * 加载学生成绩列表（登录角色为学生）
     *
     * @return Grade类型的成绩详细信息
     * @since 2017-3-8
     * @author jly
     * */
    List<Grade> studentGrades(Long userId);

    /**
     * 查询主观题种类个数
     *
     * @param fieldid 科目类别id
     * @since 2017-3-17
     * @author jly
     * */
    List<Strategies> queryZGTcount(Integer fieldid);

    /**
     * 查询成绩表最大id
     *
     * @since 2017-3-20
     * @author jly
     * */
    int queryMaxgradeId();

    /**
     * 向老师的判分表插入数据
     *
     * @since 2017-3-20
     * @author jly
     * */
    boolean addteachergrade(Integer questionid, int maxgradeId, int grade, String nowtime, String answer);
}
